import cv2
image=cv2.imread('sobel.png',cv2.IMREAD_GRAYSCALE)      #读取灰色图像
#使用Sobel算子在x轴方向计算图像梯度
Sobelx=cv2.Sobel(image,cv2.CV_64F,1,0)
#使用Sobel算子在y轴方向计算图像梯度
Sobely=cv2.Sobel(image,cv2.CV_64F,0,1)
grad_x=cv2.convertScaleAbs(Sobelx)     #对结果求绝对值
grad_y=cv2.convertScaleAbs(Sobely)
Sobelxy=cv2.addWeighted(grad_x,0.5,grad_y,0.5,0)  #加权求和运算
cv2.imshow("Input",image)               #显示原图像
cv2.imshow("Sobel_x",Sobelx)            #显示x轴方向计算图像梯度后的图像
cv2.imshow("ScaleAbs_x",grad_x)         #显示求绝对值后的图像
cv2.imshow("Sobel_y",Sobely)
cv2.imshow("ScaleAbs_y",grad_y)
cv2.imshow("Sobel",Sobelxy)             #显示加权求和运算后的图像
cv2.waitKey()
cv2.destroyAllWindows()